package info.fetter.logstashforwarder;
/*
* Copyright 2015 Didier Fetter
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
import static org.apache.log4j.Level.DEBUG;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Logger;
import org.apache.log4j.spi.RootLogger;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.databind.JsonMappingException;
public class RegistrarTest {
Logger logger = Logger.getLogger(RegistrarTest.class);
@BeforeClass
public static void setUpBeforeClass() throws Exception {
BasicConfigurator.configure();
RootLogger.getRootLogger().setLevel(DEBUG);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
BasicConfigurator.resetConfiguration();
}
@Test
public void testReadState1() throws JsonParseException, JsonMappingException, IOException {
FileState[] states = Registrar.readStateFromJson(new File(RegistrarTest.class.getClassLoader().getResource("state1.json").getFile()));
for(FileState state : states) {
logger.debug("Loaded state : " + state);
}
}
@Test
public void testWriteState2() throws JsonGenerationException, JsonMappingException, IOException {
FileState state1 = new FileState();
state1.setDirectory("/directory1");
state1.setFileName("file1");
state1.setPointer(1234);
state1.setSignature(123456);
state1.setSignatureLength(135);
FileState state2 = new FileState();
state2.setDirectory("/directory2");
state2.setFileName("file2");
state2.setPointer(4321);
state2.setSignature(654321);
state2.setSignatureLength(531);
List<FileState> stateList = new ArrayList<FileState>(2);
stateList.add(state1);
stateList.add(state2);
File file = new File("state2.json");
logger.debug("Writing to file : " + file.getCanonicalPath());
Registrar.writeStateToJson(file, stateList);
}
}